1. Field of the Invention
The present invention relates to computer implemented supervisory control and data acquisition systems (SCADA), and more particularly, to SCADA systems providing for personalized, distributed, portable real time control and data acquisition environments capable of integrating with existing legacy applications.
2. Background of the Invention
Real Time Systems
Real-time systems are necessary where there is a need to guarantee real-time response to achieve a required quality of service of various underlying devices, communications networks, operating systems, middleware components and application components. Thus, real-time systems are widely applied to diverse applications domains such as manufacturing, facilities management, power systems management, financial analysis systems, and telecommunications.
By definition, a real-time system provides a result in response to an event in a time scale that is adequate to meet the quality of service and performance needs of the application. Certain situations can be time critical in which case they require a hard real-time system, in other words, a hardware based system providing for hardware level integration of the various levels of control, monitoring, and communications systems. For a hard real-time system, the validity of the returned results depends on its correctness as well as its timeliness.
The complexity of real-time systems arises from the need to respond to concurrent events occurring within a single application (or within multiple applications) at the same time. Also, a real-time system must provide some way of managing configuration management, fault management, static and dynamic scheduling, and fault tolerance. However, some applications may be hard real-time applications and others soft real-time applications. This results in increased complexity in managing and correlating data and information generated by the different systems into a single coherent system model.
In addition, there is a need to guarantee end-to-end quality of service to every application, regardless of its implementation, communications protocols, or other integration factors.
Object-oriented systems provide a way of creating integrated, non-hierarchical real-time enterprise systems. However, object-oriented systems are often limited for practicality to modeling a small number of relatively independent object types interacting in well defined ways. The design of large-scale applications having many hundreds of different type objects is a complex undertaking.
A common strategy for implementing a real-time system is through a hierarchical architecture, where the system is separated into control, supervisory and management layers. The control layer is generally hard real-time in nature, whereas the supervisory and management layers may have decreasing needs for strict guarantee of time, and in many cases are implemented in software.
Supervisory Control and Data Acquisition (SCADA) is an example of the hierarchical real-time computer architecture such as described above. SCADA has been widely used since the early 1960's in areas such as process control and power systems management. FIG. 1 shows a typical software structure of a SCADA System.
SCADA systems are increasingly being implemented using the client-server model, in which the centralized database stores real time data and acts as a server to graphical user interface clients. Information is transferred from the control network to the real-time database through an input/output server.
In conventional SCADA systems, the real time data is captured from external sensors, control devices, or applications, and is logged to a centralized database. In response, controls on workstations are executed to manage the remote devices. All actions are performed from a centralized location. Basic control functions include alarm, trend, scan, and status operations.
One problem with conventional SCADA systems is that they are completely centralized. In a client-server system, all of the remote data information is loaded up into the central database, and then remote clients access the system. A problem with this design is degraded performance due to the single point of access, as many remote clients attempt to access the real time data through the single database server. This conventional design thus induces a scalability problem which limits the number of concurrent users.
One solution then is to use multiple real time databases, which partition the data being gathered according to geographic, management, or functional criteria The problem here is configuration management. Traditionally, configuration is done by mapping input and output points to the database fields. If there are multiple databases, then the system designer has to change the mapping of the remote sensors to the databases, and maintain these mappings over a large number of remote devices and databases. Changes in partitioning of data induce further configuration maintenance. In addition, multiple, partitioned databases make it very difficult to introduce new types of data into the database configuration, and provide for new mappings.
In a traditional SCADA systems, the application components which manage the underlying control devices is not integrated with other legacy or enterprise applications. For example, a card access system is a typical SCADA system that would be used in a business to monitor and track employee building access; separately, the business may have human resource and payroll applications that are supported as enterprise systems, and which would desirably use the data generated by the card access system. However, conventional SCADA systems do not typically provide this direct integration path because the data that comes from the SCADA system's control network is either in digital IO or analogue form and so not directly readable by the types of entities in the enterprise application, which generally operate with higher level data types. In other words, the data in the SCADA system is very low level, and the interpretation of such data is at a high level in the management layer. In an enterprise system by contrast, the data entities themselves are already at a higher level of abstraction, and the application's functional components are not suited to process low level digital or analogue data from the SCADA system. Where the enterprise system is object-oriented, there is a further need to integrate the enterprise system into the SCADA applications which may not in themselves be object-oriented. Integration of non-object oriented applications into an object-oriented system becomes a particular problem when dealing with real-time applications.
Finally, in a conventional SCADA system, there is integration of a large number of control devices through a number of diverse control networks. For example, there may be a security, a fire alarm, heating, cooling, electrical, and elevator control systems. Each of these network may have a different protocol for describing and managing data produced by underlying control devices, and thus are not designed inter-operate with each other. Data which is generated by one application cannot be understood or processed by another application. This makes it difficult to integrate the storage and processing of data into a single, logical model of the enterprise or facility. Accordingly, there is typically a different gateway for each network that interfaces with these control networks and translates from the different protocols into a single database.